
// 配置
import serviceConfig from './config'
// 服务
import service from './service'

// 生命周期
import lifecycle from './base/lifecycle'

// 简易路由
import { createRouter, useRouter } from './router/router'

// 表单子控件的属性
import { itemProps } from './base/props-item'
// 表单控件的属性
import { formProps } from './form/props-form'
// 查询控件的属性
import { findProps } from './find/props-find'
// 列表控件的属性
import { gridProps } from './grid/props-grid'

// option 选项的管理类，包括级联的操作
import {
  getChildrenOne,
  getChildren,
  shallowToDeep,
  cascaderManage
} from './base/controller-option'

// 不用防抖的输入
import custmerRef from './base/ref-model'
// 防抖输入
import debounceRef from './base/ref-emit-debounce'
// 日期类型的输入
// import dateRef from './base/ref-date'


// 加载后端API的数据
import loadController from './base/controller-load'

// 表单子控件的管理类
import itemController from './base/controller-item'
// 创建表单需要的 v-model
import { createModel } from './form/controllar/createModel'
// 表单控件的控制类
import formController from './form/controller-form'

// 创建查询需要的 内部存储结构
import { createFindModel } from './find/controller-model'
// 查询方式的字典
import { findKindDict } from './find/findKindDict'
// 查询控件的控制类
import findController from './find/controller-find'

// 列表
import createDataList from './grid/controller-model'

// 监听按键
import mykeydown from './key/keydown'
import mykeypager from './key/keypager'

// 拖拽 dialog
import dialogDrag from './drag/dialogDrag'
// 设置 grid的拖拽
import gridDrag from './drag/gridDrag'

// 设置表单的拖拽
import formDrag from './drag/formDrag'

// 设置 td、div可以拖拽
import _domDrag from './drag/controller/domDrag'

// 套个函数，避免 new
const domDrag = (th, meta, dragInfo, colId) => new _domDrag(th, meta, dragInfo, colId)


export {
  // 配置
  serviceConfig,
  // 访问后端API
  service,
  // 生命周期
  lifecycle,
  // 简易路由
  createRouter,
  useRouter,
  // 属性
  itemProps, // 表单子控件的共用属性
  formProps, // 表单控件的属性
  findProps, // 表单控件的属性
  gridProps, // 列表控件的属性
  // 选项
  getChildrenOne,
  getChildren,
  shallowToDeep,
  cascaderManage, // 下拉列表框等的选项的控制类
  // 表单
  createModel, // 创建表单需要的 v-model
  loadController, // 加载后端字典
  itemController, // 表单子控件的控制类
  formController, // 表单控件的控制类
  // 查询
  findKindDict, // 查询方式的字典
  createFindModel, // 创建查询需要的 内部存储结构
  findController, // 查询控件的控制类
  // 列表
  createDataList, // 建立演示数据
  // 按键
  mykeydown, // 操作按钮
  mykeypager, // 翻页的按键
  // 拖拽
  dialogDrag, // 拖拽 dialog
  gridDrag, // 数据列表的拖拽设置
  formDrag, // 设置表单的拖拽
  domDrag, // 设置 td、div可以拖拽
  // 赋值
  debounceRef, // 防抖
  // dateRef, // 处理日期
  custmerRef // 不防抖
}